From cb2567cc912416c428deae9b7b07a08983c10785 Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Mon, 30 Jul 2007 11:28:16 +0100 Subject: [PATCH] [IA64] Disable ACPI SRAT,SLIT table of dom0. On some ia64 NUMA machine, we cannot boot dom0. This issue is caused by different infomation LSAPIC and SRAT. Xen-ia64 modify LSAPIC IDs of dom0, but it does not modify SRAT. So we decide disabling SRAT, SLIT of dom0 as first step of NUMA work. Signed-off-by: Akio Takebe --- xen/arch/ia64/xen/dom_fw_dom0.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/xen/arch/ia64/xen/dom_fw_dom0.c b/xen/arch/ia64/xen/dom_fw_dom0.c index 4eec44b157..7cfa69dd51 100644 --- a/xen/arch/ia64/xen/dom_fw_dom0.c +++ b/xen/arch/ia64/xen/dom_fw_dom0.c @@ -103,6 +103,7 @@ acpi_update_madt_checksum(unsigned long phys_addr, unsigned long size) /* base is physical address of acpi table */ static void __init touch_acpi_table(void) { + int result; lsapic_nbr = 0; if (acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_update_lsapic, 0) < 0) @@ -111,6 +112,18 @@ static void __init touch_acpi_table(void) acpi_patch_plat_int_src, 0) < 0) printk("Error parsing MADT - no PLAT_INT_SRC entries\n"); + result = acpi_table_disable(ACPI_SRAT); + if ( result == 0 ) + printk("Success Disabling SRAT\n"); + else if ( result != -ENOENT ) + printk("ERROR: Failed Disabling SRAT\n"); + + result = acpi_table_disable(ACPI_SLIT); + if ( result == 0 ) + printk("Success Disabling SLIT\n"); + else if ( result != -ENOENT ) + printk("ERROR: Failed Disabling SLIT\n"); + acpi_table_parse(ACPI_APIC, acpi_update_madt_checksum); return; -- 2.30.2